通常你的資料會是檔案、API接口或是一個連結作為D3輸入的資料,這邊就以下常見的資料格式簡單介紹一下
CSV
是一種通用、簡單的格式,檔案以純文字儲存表格的資料,常見使用逗號來分隔資料,換句話說如果你用記事本的格式開啟的話大概會長這樣。
如下圖
你也可以使用Microsoft Excel開啟,它會自動幫你引入表格當中呈現
由於是以純文字的方式儲存,因此也會有編碼上的差異,如果你用記事本檔案→另存新檔的時候,存檔類型選擇所有檔案,在編碼的地方可以看到有許多種類可供選擇,順帶一提ANSI編碼
在語言不同的情況之下會有亂碼出現的可能性,現在大部分使用UTF
形式儲存文字,目前常見使用的UTF-8
也常用在html的meta
資訊裡面,另外如果用Excel打開的時候會出現亂碼也可以嘗試另存成具BOM的UTF-8
來儲存,提供給預開啟軟體自動識別是UTF的格式。
其他更多資訊可以參見維基百科
CSV維基百科
起先由Douglas Crockford設計和構想的輕量級資料交換格式,雖然JSON
是JavaScript的子集
,但其實目前很多程式語言都支援JSON的生成和解析,以下列出他們所擁有的資料型態
資料型態 | 值 |
---|---|
object物件 | {} |
array陣列 | [] |
string字串 | "" |
number數值 | 0-9的整數、小數、負數 |
boolean 布林值 | true 或 false |
null 空值 | null |
以下作為JSON範例
{
"item":{
"name": "香蕉",
"catalog": "水果",
"price": 100,
}
}
可以發現與Javascript的物件可以儲存的內容有著十分類似的樣貌,但是Javascript的物件可以儲存函式
,然而JSON僅是儲存資料因此不能儲存函式,另外JSON在資料交換的時候必須使用UTF-8的格式
,也可以使用Unicode16進位跳脫字元序列,若你在網路上下載的JSON資料以文字檔打開的時候的文字類似像\u0041
這樣類型的話,並不是出現亂碼或是錯誤的狀況,而使它使用了十六進位的跳脫字元序列,你在console.log欄位的話就能看出原本的字符。
如下圖
另外在網路上找到相對應的字元編碼可以轉譯文字,參照下列網址
XML
是一種標記式語言,他長得有點類似HTML,這裡嘗試著寫一個XML的範例
<?xml version="1.0"?>
<item>
<name>香蕉</name>
<catalog>水果</catalog>
<price>100</price>
</item>
由於它是從SGML
標準通用標記式語言(Standard Generalized Markup Language)所衍生出的子集,算是比較早期拿來做資料交換的格式,和JSON類似的地方一樣可以在標籤內涵蓋其他標籤,擁有階層的概念,這邊主要會稍微和JSON做對應,由於可以看到XML比起JSON多了標頭<item>
和標尾</item>
,因此整個檔案所占用的空間也較少,也因為如此所以JSON目前是更加廣泛和流行。
這邊僅提出較常見的格式,其他還有像是tsv
和dsv
是類似csv
一些格式可以參見維基百科介紹